// Pointfree 的本质就是使用一些通用的函数，组合出各种复杂运算。
// 上层运算不要直接操作数据，而是通过底层函数去处理。
// 这就要求，将一些常用的操作封装成函数。


// Hello World => hello_world
const fp = require('lodash/fp')
const f = fp.flowRight(fp.replace(/\s+/g,'_'),fp.toLower)//正则匹配所有的空格。
console.log(f('hello js world'))

// 把一个字符串中的首字母提取并转换成大写, 使用. 作为分隔符
// world wild web ==> W. W. W

// const firstLetterToUpper = fp.flowRight(fp.join('. '), fp.map(fp.first), fp.map(fp.toUpper), fp.split(' '))
const firstLetterToUpper = fp.flowRight(fp.join('. '), fp.map(fp.flowRight(fp.first, fp.toUpper)), fp.split(' '))
console.log(firstLetterToUpper('world wild web'))